home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1999 May: Tool Chest / Developer CD Series Tool Chest (Apple Computer)(May 1999).iso / Tool Chest / Networking / Network Watch (DMZ) v1.5 / sources / dmz.h next >
Encoding:
C/C++ Source or Header  |  1996-04-25  |  18.6 KB  |  615 lines  |  [TEXT/MPS ]

  1. /*
  2.  *    dmz.h
  3.  *    
  4.  *    Modification History
  5.  *    5/27/94     rrk    Implemented support for PPC
  6.  *  2/1/94 by Peter Lovell, GE Information Services
  7.  *    for Think C 6.0
  8.  *    9/21/92  rrk    Implemented ATalk Trans Queue Handler
  9.  *    2/15/90    pvh    - first wrote this.  about freakin time...
  10.  *
  11.  */
  12.  
  13. #ifndef __DMZ__
  14. #define __DMZ__
  15.  
  16. #include    <Types.h>
  17. #include    <Quickdraw.h>
  18. #include    <ToolUtils.h>
  19. #include    <Fonts.h>
  20. #include    <Events.h>
  21. #include    <Windows.h>
  22. #include    <Dialogs.h>
  23. #include    <Menus.h>
  24. #include    <TextEdit.h>
  25. #include    <Scrap.h>
  26. #include    <SegLoad.h>
  27. #include    <Files.h>
  28. #include    <Devices.h>
  29. #include    <Memory.h>
  30. #include    <Lists.h>
  31. #include    <Script.h>
  32. #include    <Packages.h>
  33. #include    <OSUtils.h>
  34. #include    <CursorCtl.h>
  35. #include    <Traps.h>
  36. #include    <Resources.h>
  37. #include    <Errors.h>
  38. #include    <OSUtils.h>
  39. #include    <Strings.h>
  40. #include    <Gestalt.h>
  41. #include    <ConditionalMacros.h>
  42. #include    <MixedMode.h>
  43. #include    <AppleTalk.h>
  44. #include    "SpinCursor.h"
  45. #include    <LowMem.h>
  46.  
  47. #define __wchar_t__    // entered to get around header problems with Symantec C IDE
  48.  
  49. #include     <OpenTransport.h>
  50. #include     <OpenTptAppleTalk.h>
  51. #include    <stdlib.h>
  52.  
  53. /*
  54.  *    Structure necessary for MultiFinder compatibility.  Our own layer's A5
  55.  *    must be saved so globals can be used by the _PLookupName completion routine.
  56. */
  57.  
  58. #if powerc
  59. #pragma options align=mac68k
  60. #endif
  61.  
  62. typedef struct myMPPParamBlock {
  63.     long                 myA5;
  64.     MPPParamBlock         myMPP;    
  65. } myMPPParamBlock;
  66.     
  67. /* 
  68.  *    This is the structure that defines the "look" of our lists.  It includes
  69.  *    the object name, type, net, node & socket
  70.  */
  71. typedef struct myNetworkEntity {
  72.     char object[33];    
  73.     char type[33];    
  74.     char net[6];
  75.     char node[4];
  76.     char socket[4];
  77. } myNetworkEntity;
  78.  
  79. /* 
  80.  *    A few char codes…
  81.  */
  82. #define kEnterKey    (char)3
  83. #define kReturnKey    (char)13
  84.  
  85. /* 
  86.   *    HiliteMode low memory global.  We clear a bit at this address for using HiliteRGB
  87.   *    when inverting in our LDEF & when selecting items.
  88.   */
  89. #define HiliteModePtr    0x938
  90.  
  91. /* 
  92.   *    Offsets of the structure.  Used for the quicksort().
  93.   */
  94. #define myNetworkEntityObject    0 
  95. #define myNetworkEntityType     33+myNetworkEntityObject
  96. #define myNetworkEntityNet         33+myNetworkEntityType
  97. #define myNetworkEntityNode        6+myNetworkEntityNet
  98. #define myNetworkEntitySocket     4+myNetworkEntityNode
  99.  
  100. /* 
  101.  *    Justification constants for our list views.
  102.  */
  103. #define leftJust     1
  104. #define rightJust     2
  105.  
  106.  /* 
  107.   *    various stuff needed for AppleTalk bridging 
  108.   */
  109. #define sysABridge             0x19
  110. #define ABusVars             0x000002D8
  111. #define kBridgeSocket         0x6
  112. #define systemNetwork         0x1A
  113.  
  114.  /* 
  115.   *    other defines 
  116.   */
  117. #define kMachineNameResourceID    -16096
  118. #define kFlagshipNameResourceID    -16413
  119. #define    ddpMaxData                586
  120. #define ddpMaxRawData            599
  121. #define kNumBuffers                2
  122. #define kEchoSocket                4
  123. #define kEchoType                "\pEcho Socket"
  124. #define kEchoDDPType            4
  125. #define kMaxNamesToGet            380
  126. #define kLookupBufSize            32767
  127.  
  128.  /* 
  129.   *    defines for OpenTransport and ASLM
  130.   */
  131. #define kDefaultPoolSize    10000
  132. #define kOpenTransportInitFailed    -17000
  133.  
  134.  
  135.  /* 
  136.   * defines to indicate a change of status in AppleTalk
  137.   */
  138. #define    ATalkStatusChanged    1
  139. #define    ATalkActivated        2
  140.  
  141. /* 
  142.  *    calls for pre-Phase2 AppleTalk 
  143.  *    (already defined in LSC)
  144.  */
  145. #ifndef _GetZoneList         
  146. #define _GetZoneList    8
  147. #endif
  148.  
  149. #ifndef _GetLocalZone         
  150. #define _GetLocalZone    7
  151. #endif
  152.  
  153. #define entryLengths     20                /*  33 standard entityData length */
  154.  
  155. #define suspendResumeEvt     15
  156.  
  157. /*
  158.  *    Resource ID constants.
  159.  */
  160.  
  161. /*
  162.  *    Resource ID constants for string list items.
  163.  */
  164. #define kZoneStrID        1
  165. #define kObjectStrID    2
  166. #define kTypeStrID        3
  167. #define kNetStrID        4
  168. #define kNodeStrID        5
  169. #define kSktStrID        6
  170.  
  171. #define    kStringListID     128                /* ID for our string list resource */
  172.  
  173.  
  174. #define    appleID            128             /* This is a resource ID */
  175. #define    fileID             129             /* ditto */
  176. #define    editID             130             /* ditto */
  177.  
  178. #define    appleMenu        0                /* MyMenus[] array indexes */
  179. #define    aboutMeCommand    1
  180.  
  181. #define    fileMenu        1
  182. #define    lookupCommand     1
  183. #define    quitCommand     2
  184.  
  185. #define    editMenu        2
  186. #define cutCommand        3
  187. #define copyCommand        4
  188. #define pasteCommand    5
  189. #define clearCommand    6
  190. /*#define clearCommand    5*/
  191.  
  192. /* for sort child menu */
  193. #define objectItem            1
  194. #define typeItem            2
  195. #define netItem                3
  196. #define nodeItem            4
  197. #define socketItem            5
  198.  
  199. /*
  200.  * For the About Sample... DLOG
  201.  */
  202. #define    aboutMeDLOG        128
  203. #define    okButton            1
  204. #define    authorItem            2            /* For SetIText */
  205. #define    languageItem        3            /* For SetIText */
  206.  
  207. /*
  208.  * For the spin cursor... ACUR
  209.  */
  210. #define kDMZ_ACUR_ID        0
  211.  
  212. /*
  213.  *    constants for main dialog 
  214.  */
  215. #define kMainDialogID    129
  216.  
  217. #define kZoneListID            1
  218. #define kNameTypeListID        2
  219. #define kZoneItemID            4
  220. #define kTypeID                5
  221. #define kObjectID            6
  222. #define kObjectCountID        7
  223. #define kProgressID            8
  224. #define kNetID                9
  225. #define kNodeID                10
  226. #define kSocketID            11
  227. #define kDoLookupID            12
  228.  
  229. /*
  230.  *    constants for lookup dialog 
  231.  */
  232. #define kLookupDialogID    130
  233. #define kIntervalItem     3
  234. #define kCountItem         4
  235. #define kPhase2Item     5
  236. #define kObjectItem     8
  237. #define kTypeItem         9
  238.  
  239. /*
  240.  *    constant for Alert dialog
  241.  */
  242. #define    rUserAlert        1000                /* user error alert */
  243.  
  244.  
  245. #define    resumeMask                1        /* bit of message field for resume vs. suspend */
  246. #define    sysEnvironsVersion        1
  247.  
  248. /* 
  249.  *    quicksort "mode" constants 
  250.  */
  251. #define sortOnZoneName     1
  252. #define sortOnObject     1
  253. #define sortOnType         31
  254. #define sortOnNet         62
  255. #define sortOnNode         68
  256. #define sortOnSocket     72
  257.     
  258. /* 
  259.  *    constants for window activation 
  260.  */
  261. #define kActivateWindow        1
  262. #define kDeactivateWindow    0
  263.  
  264. /* 
  265.  *    low memory global for hilite RGB setting 
  266.  */
  267. #define HiliteRGB 0xDA0
  268.  
  269.  
  270. #define zoneNameSize     33
  271. #define kDefZonesToGet    64
  272. #define kMaxZoneBuffSize    32767
  273.  
  274. /* 
  275.  * constants for the gATalkFlags global
  276.  */
  277.  
  278. #define    kVMActive            0
  279. #define kATQInstalled        1
  280. #define kSocketBuffsHeld    2
  281. #define kNameRegistered        3
  282. #define    kATalkActive        4
  283. #define    kSocketBuffsInitd    5
  284. #define kListenerHeld        6
  285. #define kOTActive            7        // new flag to indicate Open Transport is active
  286. #define    kOTLookupActive        8
  287.  
  288. #define SetVMActiveFlag(flags)                (flags |= 1 << kVMActive)
  289. #define ClrVMActiveFlag(flags)                (flags &= (-1 ^ (1 << kVMActive)))
  290. #define TstVMActiveFlag(flags)                ((flags & (1 << kVMActive)) != 0)
  291.  
  292. #define SetATQInstalledFlag(flags)            (flags |= 1 << kATQInstalled)
  293. #define ClrATQInstalledFlag(flags)            (flags &= (-1 ^ (1 << kATQInstalled)))
  294. #define TstATQInstalledFlag(flags)            ((flags & (1 << kATQInstalled)) != 0)
  295.  
  296. #define SetSocketBuffsHeldFlag(flags)        (flags |= 1 << kSocketBuffsHeld)
  297. #define ClrSocketBuffsHeldFlag(flags)        (flags &= (-1 ^ (1 << kSocketBuffsHeld)))
  298. #define TstSocketBuffsHeldFlag(flags)        ((flags & (1 << kSocketBuffsHeld)) != 0)
  299.  
  300. #define SetNameRegisteredFlag(flags)        (flags |= 1 << kNameRegistered)
  301. #define ClrNameRegisteredFlag(flags)        (flags &= (-1 ^ (1 << kNameRegistered)))
  302. #define TstNameRegisteredFlag(flags)        ((flags & (1 << kNameRegistered)) != 0)
  303.  
  304. #define SetATalkActiveFlag(flags)            (flags |= 1 << kATalkActive)
  305. #define ClrATalkActiveFlag(flags)            (flags &= (-1 ^ (1 << kATalkActive)))
  306. #define TstATalkActiveFlag(flags)            ((flags & (1 << kATalkActive)) != 0)
  307.  
  308. #define SetSocketBuffsInitdFlag(flags)        (flags |= 1 << kSocketBuffsInitd)
  309. #define ClrSocketBuffsInitdFlag(flags)        (flags &= (-1 ^ (1 << kSocketBuffsInitd)))
  310. #define TstSocketBuffsInitdFlag(flags)        ((flags & (1 << kSocketBuffsInitd)) != 0)
  311.  
  312. #define SetListenerHeldFlag(flags)            (flags |= 1 << kListenerHeld)
  313. #define ClrListenerHeldFlag(flags)            (flags &= (-1 ^ (1 << kListenerHeld)))
  314. #define TstListenerHeldFlag(flags)               ((flags & (1 << kListenerHeld)) != 0)
  315.  
  316. #define SetOTActiveFlag(flags)                (flags |= 1 << kOTActive)
  317. #define ClrOTActiveFlag(flags)                (flags &= (-1 ^ (1 << kOTActive)))
  318. #define TstOTActiveFlag(flags)                ((flags & (1 << kOTActive)) != 0)
  319.  
  320. #define SetOTLookupActiveFlag(flags)        (flags |= 1 << kOTLookupActive)
  321. #define ClrOTLookupActiveFlag(flags)        (flags &= (-1 ^ (1 << kOTLookupActive)))
  322. #define TstOTLookupActiveFlag(flags)        ((flags & (1 << kOTLookupActive)) != 0)
  323.  
  324.  
  325. /* 
  326.  *    AppleTalk Phase 2 calls 
  327.  */
  328.  
  329. /* 
  330.  *    csCodes for new .XPP driver calls
  331.  */
  332. #ifndef xCall
  333. #define    xCall                246
  334. #endif
  335.  
  336. /* 
  337.  *    xppSubCodes 
  338.  */
  339. #ifndef zipGetLocalZones
  340. #define zipGetLocalZones     5
  341. #endif
  342. #ifndef zipGetZoneList
  343. #define zipGetZoneList        6
  344. #endif
  345. #ifndef zipGetMyZone
  346. #define zipGetMyZone         7
  347. #endif
  348.  
  349. /* 
  350.  *    mpp csCodes 
  351.  */
  352. #ifndef getAppleTalkInfo
  353. #define getAppleTalkInfo     258
  354. #endif
  355.  
  356. /*  
  357.  *    offsets for packet buffers to be used by socket listener
  358.  */
  359. typedef struct {
  360.         QElemPtr    qLink;
  361.         short        qType;
  362.         short        buffer_type;            /* DDP Type */
  363.         short        buffer_NodeID;            /* Destination Node */
  364.         AddrBlock    buffer_Address;            /* Source Address in AddrBlock format */
  365.         short        buffer_Hops;            /* Hop count */
  366.         short        buffer_ActCount;        /* length of DDP datagram */
  367.         OSErr        buffer_CheckSum;        /* Checksum returned here */
  368.         long        buffer_Ticks;            /* Timestamp of processing by socket listener */
  369.         char        buffer_Data[ddpMaxData]; /* the DDP datagram */
  370. } PacketBuffer;
  371.  
  372. typedef PacketBuffer *PacketPtr;
  373.  
  374. /*
  375.  *    The following stuff is implemented for the AppleTalk Transition Queue 
  376.  */
  377.  
  378. #define ATTransOpen                    0        /* .MPP just opened */
  379. #define ATTransClose                2        /* .MPP is closing */
  380. #define ATTransClosePrep            3        /* OK for .MPP to close? */
  381. #define ATTransCancelClose            4        /* .MPP close was canceled */
  382. #define ATTransNetworkTransition    5        /* .MPP Network ADEV transition */
  383. #define ATTransNameChangeTellTask    6        /* Flagship name is changing */
  384. #define ATTransNameChangeAskTask    7        /* OK to change Flagship name */
  385. #define ATTransCancelNameChange        8        /* Flagship name change was canceled */
  386. #define ATTransCableChange            'rnge'    /* Cable Range Change has occurred */
  387. #define ATTransSpeedChange            'sped'    /* Change in processor speed has occurred */
  388.  
  389. /*----------------------------------------------------------------------
  390.         NBP Name Change Info record
  391. ----------------------------------------------------------------------*/
  392. typedef struct NameChangeInfo {
  393.     Str32     newObjStr;    /* new NBP name */
  394.     Ptr    name;            /* Ptr to location to place a pointer to Pascal string of */
  395.                             /* name of process that NAK'd the event */
  396. }
  397.     NameChangeInfo, *NameChangePtr, **NameChangeHdl;
  398.  
  399. /*----------------------------------------------------------------------
  400.         Network Transition Info Record
  401. ----------------------------------------------------------------------*/
  402.  
  403. typedef struct TNetworkTransition {
  404.     Ptr        private;            /* pointer to private structure */
  405.     ProcPtr    netValidProc;        /* pointer to network validation procedure */
  406.     Boolean     newConnectivity;    /* true = new connection */
  407.                                      /* false = loss of connection */
  408.  
  409. }
  410.     TNetworkTransition , *TNetworkTransitionPtr, **TNetworkTransitionHdl;
  411.  
  412.  
  413. typedef    pascal long    (*NetworkTransitionProcPtr)(TNetworkTransitionPtr netTrans, \
  414.                       unsigned long theNet);
  415.  
  416. /*----------------------------------------------------------------------
  417.         Cable Range Transition Info Record
  418. ----------------------------------------------------------------------*/
  419. typedef struct TNewCRTrans {
  420.     short    newCableLo;    /* the new Cable Lo received from RTMP */
  421.     short    newCableHi;    /* the new Cable Hi received from RTMP */
  422. }
  423.     TNewCRTrans , *TNewCRTransPtr, **TNewCRTransHdl;
  424.  
  425. /*----------------------------------------------------------------------
  426.         AppleTalk Transition Queue Element
  427. ----------------------------------------------------------------------*/
  428. typedef struct    myATQEntry {
  429.     struct ATQEntry            *qLink;        /* have to maintain standard ATQ entries */
  430.     short                    qType;
  431.     ATalkTransitionEventUPP    CallAddr;        
  432.     Handle        globs;                    /* handle to user defined globals */
  433.     long        myA5;                    // A5 saved for the ATQ routine
  434. }
  435.     myATQEntry, *myATQEntryPtr, **myATQEntryHdl;
  436.  
  437. /*----------------------------------------------------------------------
  438.          Transition Queue global values
  439. ----------------------------------------------------------------------*/
  440. typedef struct    dmzEntry {
  441.     Boolean            atalkStatusChanged;    /* status of AppleTalk has changed */
  442.     Boolean            atalkActive;    /* AppleTalk is active/inactive */
  443.     NamesTableEntry    *dmzNTEPtr;        /* -> NTE entry to Remove name */
  444. }
  445.     dmzEntry, *dmzEntryPtr, **dmzEntryHdl;
  446.  
  447. /*----------------------------------------------------------------------
  448.          ProcPtr defines for PowerPC
  449. ----------------------------------------------------------------------*/
  450. enum {
  451.     uppInitListenerProcInfo = kPascalStackBased
  452.          | RESULT_SIZE(SIZE_CODE(sizeof(OSErr)))
  453.          | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(QHdrPtr)))
  454.          | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(QHdrPtr)))
  455. };
  456.  
  457. typedef pascal OSErr (*InitSktListenerProcPtr)(QHdr *freeQ, QHdr *usedQ);
  458.  
  459. #if USESROUTINEDESCRIPTORS
  460. typedef UniversalProcPtr    InitSktListenerUPP;
  461.  
  462. #define CallInitSktListenerProc(userRoutine, freeQ, usedQ)    \
  463.         CallUniversalProc((UniversalProcPtr)(userRoutine), uppInitListenerProcInfo, (freeQ), (usedQ))
  464. #define NewInitSktListenerProc(userRoutine)        \
  465.         (InitSktListenerUPP) NewRoutineDescriptor((ProcPtr)userRoutine, uppInitListenerProcInfo, kM68kISA)
  466.  
  467. #else
  468.  
  469. typedef InitSktListenerProcPtr    InitSktListenerUPP;
  470.  
  471. #define CallInitSktListenerProc(userRoutine, freeQ, usedQ)    \
  472.         (userRoutine)(freeQ, usedQ)
  473. #define NewInitSktListenerProc(userRoutine)        \
  474.         (InitSktListenerUPP)(userRoutine)
  475.  
  476. #endif
  477.  
  478. /*----------------------------------------------------------------------
  479.         raw DDP packet buffer
  480. ----------------------------------------------------------------------*/
  481. typedef struct    RawDDPPacket {
  482.     UInt8        data[586 + 13];    // 586 is the TSDU size for DDP, 13 is for the long DDP Header
  483. }
  484.  RawDDPPacket, *RawDPPPacketPtr, **RawDPPPacketHndl;
  485.  
  486. /* prototypes ************* */
  487.  
  488. /* dmzmain.c */
  489. extern void        myVBLSpinInstall(void);
  490. extern int        stopAndDisposeSpinCursor(void);
  491. extern void        DrawBoldItem(WindowPtr whichWindow, short theItem, short whichStrID);
  492. extern pascal void    updateUserItems(WindowPtr whichWindow, short theItem);
  493. extern void        getandSetIt(short whichID);
  494. extern void        setupUserItems(void);
  495. extern void        setupLookupItem(void);
  496. extern void        doLookupItem(void);
  497. extern void        setWindowStdState(WindowPtr theWindow);
  498. extern void        setUpDialogs(void);
  499. extern void        FrameItem(DialogPtr whichDialog, short whichItem);
  500. extern void        doModeless(DialogPtr whichDialog, short whichItem);
  501. extern void        doIdle(void);
  502. extern void        DrawGrowBox(WindowPtr theWindow);
  503. extern void        doUpdate(WindowPtr theWindow);
  504. extern void        ShowMainWindowAndSizeIt(void);
  505. extern void        doInitializing(void);
  506. extern short    resizeRectToListCellSize(short height);
  507. extern void        resizeWindow(WindowPtr whichWindow, short height);
  508. extern Boolean    IsAppWindow(WindowPtr window);
  509. extern Boolean    IsDAWindow(WindowPtr window);
  510. extern Boolean    DoCloseWindow(WindowPtr window);
  511. extern void        DoZoomWindow(WindowPtr whichWindow, short partCode);
  512. extern void        DoGrowWindow(WindowPtr whichWindow, EventRecord *evt);
  513. extern void        doActivate(WindowPtr theWindow);
  514. extern void        doDeactivate(WindowPtr theWindow);
  515. extern void        doCleanUpAndTerminate(void);
  516. extern void        setupMenus(void);
  517. extern void        handleLookupDialogEdit(void);
  518. extern void        doCommand(long mResult);
  519. extern pascal void    aboutDialogOKFrame(WindowPtr theWindow, short itemNo);
  520. extern void        centerDialog(WindowPtr theWindow);
  521. extern void        showAboutMeDialog(void);
  522. extern void     BigBadError(Str255    message);
  523. extern Boolean  TrapAvailable(short theTrap);
  524. extern Boolean  IsVMOn(void);
  525. extern short     NumToolboxTraps(void);
  526. extern TrapType GetTrapType(short theTrap);
  527. extern void     DoSpinCursor(void);
  528. extern void     StopSpinCursor(void);
  529.  
  530.  
  531.  
  532. /* dmzlists.c */
  533.  
  534. extern void        invalidateItem(short whichItem);
  535. extern void        DisposOfMyLists(void);
  536. extern void        OpenZonesList(void);
  537. extern void        tellUserNoZones(void);
  538. extern int        myCompare(const void *aStr, const void *bStr);
  539. extern void        letsSort(Ptr theBuffPtr, short numZonesGot, short number);
  540. extern void        SetZoneCells(Ptr bufferPtr, short NumZonesGot);
  541. extern void        doZonesListStuff(void);
  542. extern void        OpenObjectTypeList(void);
  543. extern void        doObjectDoubleClick(void);
  544. extern void        doObjectTypeListStuff(void);
  545. extern void        padEntry(unsigned char *entry, short length, short just);
  546. extern void        SetObjectTypeCells(Ptr bufferPtr, short numDevicesGot);
  547. extern void     ClearZoneCells();
  548. extern void     ClearObjectTypesList();
  549. extern short    pcmp(StringPtr s1, StringPtr s2);
  550.  
  551. /* dmzat.c */
  552. extern pascal void saveThatA5(void);
  553. extern pascal void restoreThatA5(void);
  554. extern void     saveThisA5(myATQEntry *atqEntry);
  555.  
  556. extern unsigned char    *Pstrcat(unsigned char *s, unsigned char *t);
  557. extern unsigned char    PStrLen(unsigned char *e);
  558. extern Boolean    PStrComp(unsigned char *str1, unsigned char *str2);
  559. extern void        killLookups(void);
  560. extern void        removeMyNameAndSocket(void);
  561. extern void        closeUpOurAppleTalk(void);
  562. extern void        registerMyName(void);
  563. extern void        enableSetSelfSend(void);
  564. extern void        phase2Check(void);
  565. extern void        InitAppleTalkVars(void);
  566. extern void        addToUnpackedBuffer(Ptr oldBuffer, Ptr newBuffer, short numGot, short total);
  567. extern void        getMyZone(char *myZoneBuffer);
  568. extern void     doGetZoneListPhs2(void);
  569. extern void        doGetZoneListPrePh2(void);
  570. extern Boolean    zonesPresent(void);
  571. extern void        setItemString(DialogPtr whichDialog, short whichItem, Str255 str);
  572. extern void        getTheZoneList(void);
  573. extern void        processListUpdate(void);
  574. extern void        myCompletionRoutine(ParamBlockRec *paramBlock);
  575. extern void        setUpdateListFlag(void);
  576. extern char        giveMeItemValue(short whichItem);
  577. extern void        giveMeItemString(short whichItem, Str255 str);
  578. extern void        getTypesNamesInZone(char *NBPZone);
  579. extern void        doGetMyZonePhs2(void);
  580. extern void        doGetLocalZonesPhs2(void);
  581. extern void        doGetZoneListPhs2(void);
  582. extern void        setupEchoDialog(DialogPtr echoDialog, myNetworkEntity *myEnt);
  583. extern void        doEcho(myNetworkEntity *myEnt);
  584. extern long        ATalkTransQueue(long selector, myATQEntry *q, void *p);
  585. extern OSErr     InitEchoBuffers(void);
  586. extern short    AppleTalkVersion(void);
  587. extern Boolean     GestaltAvailable(void);
  588. extern Boolean  LAPMgrExists(void);
  589. extern void     restoreSetSelfSend(); 
  590.  
  591. /* dmzOT.c */
  592. extern OSErr    ActivateOpenTransport(void);
  593. extern Boolean  OpenTransportActive(void);
  594. extern void     GetBridgeAddressFromOT(AddrBlock *theAddr);
  595. extern void     CleanupOTServices(void);
  596. extern short    addToOTUnpackedBuffer(Ptr packedBuffer, Ptr unpackedBuffer, long len);
  597. extern UInt16   OTMySetNBPEntity(char *buffer, Ptr nbpObject, Ptr nbpType, Ptr nbpZone);
  598. extern void     DoOTGetMyZone(char *myZoneBuffer);
  599. extern void     DoOTNameLookup(char *NBPObject, char *NBPType, char *NBPZone);
  600. extern pascal void     MyDMZNBPHandler(void*  contextPtr, OTEventCode event, OTResult result, void* cookie);
  601. extern void     OTSetObjectTypeCells(Ptr ptr, short numDevicesGot);
  602. extern void     OTDeleteMyName (void);
  603. extern void     OTRegisterMyName (void);
  604. extern void     DoOTGetZoneList(void);
  605. extern void        ProcessOTListUpdate(char *resultStr);
  606. extern void     doOTEcho(myNetworkEntity    *myEnt);
  607.  
  608. /* OpenTptUtilities.c */
  609. extern short     OTExtractNBPCName(const NBPEntity* entity, char* field, UInt32 offset, UInt8 *delimiter);
  610.  
  611. #if powerc
  612. #pragma options align=reset
  613. #endif
  614.  
  615. #endif     // __DMZ__